package co.com.smart.persistence.entity.dto;

import java.io.Serializable;

import javax.persistence.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the smart_ciudad database table.
 * 
 */
@Entity
@Table(name="smart_ciudad")
@NamedQuery(name="SmartCiudad.findAll", query="SELECT s FROM SmartCiudad s")
public class SmartCiudad implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="sm_scciudad")
	private BigDecimal smScciudad;

	@Column(name="sm_cociudad")
	private String smCociudad;

	@Column(name="sm_cousuario")
	private String smCousuario;

	@Column(name="sm_dsciudad")
	private String smDsciudad;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhingreso")
	private Date smFhingreso;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhmodificacion")
	private Date smFhmodificacion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhretiro")
	private Date smFhretiro;

	@Column(name="sm_scinstitucion")
	private BigDecimal smScinstitucion;

	@Column(name="sm_scpais")
	private BigDecimal smScpais;

	@Column(name="sm_sczona")
	private BigDecimal smSczona;

	//bi-directional many-to-one association to SmartDepartamento
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scdepartamento", referencedColumnName="sm_scdepartamento")
	private SmartDepartamento smScdepartamento;

	//bi-directional many-to-one association to SmartZona
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smScciudad", fetch = FetchType.LAZY)
	private List<SmartZona> smartZonas;

	public SmartCiudad() {
	}

	public BigDecimal getSmScciudad() {
		return this.smScciudad;
	}

	public void setSmScciudad(BigDecimal smScciudad) {
		this.smScciudad = smScciudad;
	}

	public String getSmCociudad() {
		return this.smCociudad;
	}

	public void setSmCociudad(String smCociudad) {
		this.smCociudad = smCociudad;
	}

	public String getSmCousuario() {
		return this.smCousuario;
	}

	public void setSmCousuario(String smCousuario) {
		this.smCousuario = smCousuario;
	}

	public String getSmDsciudad() {
		return this.smDsciudad;
	}

	public void setSmDsciudad(String smDsciudad) {
		this.smDsciudad = smDsciudad;
	}

	public Date getSmFhingreso() {
		return this.smFhingreso;
	}

	public void setSmFhingreso(Date smFhingreso) {
		this.smFhingreso = smFhingreso;
	}

	public Date getSmFhmodificacion() {
		return this.smFhmodificacion;
	}

	public void setSmFhmodificacion(Date smFhmodificacion) {
		this.smFhmodificacion = smFhmodificacion;
	}

	public Date getSmFhretiro() {
		return this.smFhretiro;
	}

	public void setSmFhretiro(Date smFhretiro) {
		this.smFhretiro = smFhretiro;
	}

	public BigDecimal getSmScinstitucion() {
		return this.smScinstitucion;
	}

	public void setSmScinstitucion(BigDecimal smScinstitucion) {
		this.smScinstitucion = smScinstitucion;
	}

	public BigDecimal getSmScpais() {
		return this.smScpais;
	}

	public void setSmScpais(BigDecimal smScpais) {
		this.smScpais = smScpais;
	}

	public BigDecimal getSmSczona() {
		return this.smSczona;
	}

	public void setSmSczona(BigDecimal smSczona) {
		this.smSczona = smSczona;
	}

	public SmartDepartamento getSmartDepartamento() {
		return this.smScdepartamento;
	}

	public void setSmartDepartamento(SmartDepartamento smScdepartamento) {
		this.smScdepartamento = smScdepartamento;
	}

	public List<SmartZona> getSmartZonas() {
		return this.smartZonas;
	}

	public void setSmartZonas(List<SmartZona> smartZonas) {
		this.smartZonas = smartZonas;
	}

	public SmartZona addSmartZona(SmartZona smartZona) {
		getSmartZonas().add(smartZona);
		smartZona.setSmartCiudad(this);

		return smartZona;
	}

	public SmartZona removeSmartZona(SmartZona smartZona) {
		getSmartZonas().remove(smartZona);
		smartZona.setSmartCiudad(null);

		return smartZona;
	}

}